﻿using System;
using System.Net;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Documents;
using System.Windows.Ink;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Animation;
using System.Windows.Shapes;

namespace Mvvm
{
    public class BaseViewModel<T> : ObservableObject<BaseViewModel<T>> where T : class 
    {
        private T model;

        public T Model
        {
            get
            {
                return model;
            }

            set
            {
                if (model == value)
                {
                    return;
                }

                model = value;
                OnPropertyChanged(vm => vm.Model);
            }
        }
    }
}
